package au.com.acpfg.io.genbank.reader;
import javax.swing.JFileChooser;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import org.knime.core.node.defaultnodesettings.DefaultNodeSettingsPane;
import org.knime.core.node.defaultnodesettings.DialogComponentBoolean;
import org.knime.core.node.defaultnodesettings.DialogComponentFileChooser;
import org.knime.core.node.defaultnodesettings.DialogComponentNumber;
import org.knime.core.node.defaultnodesettings.DialogComponentString;
import org.knime.core.node.defaultnodesettings.DialogComponentStringListSelection;
import org.knime.core.node.defaultnodesettings.DialogComponentStringSelection;
import org.knime.core.node.defaultnodesettings.SettingsModelBoolean;
import org.knime.core.node.defaultnodesettings.SettingsModelIntegerBounded;
import org.knime.core.node.defaultnodesettings.SettingsModelString;
import org.knime.core.node.defaultnodesettings.SettingsModelStringArray;
/**
* <code>NodeDialog</code> for the "GenBankReader" Node.
* Using BioJava, this node reads the specified files/folder for compressed genbank or .gb files and loads the sequences into a single table along with most of key metadata
*
* This node dialog derives from {@link DefaultNodeSettingsPane} which allows
* creation of a simple dialog with standard components. If you need a more
* complex dialog please derive directly from
* {@link org.knime.core.node.NodeDialogPane}.
*
* @author http://www.plantcell.unimelb.edu.au
*/
public class GenBankReaderNodeDialog extends DefaultNodeSettingsPane {
/**
* New pane for configuring GenBankReader node dialog.
* This is just a suggestion to demonstrate possible default dialog
* components.
*/
protected GenBankReaderNodeDialog() {
super();
this.createNewGroup("Genbank file/folder to load:");
final SettingsModelBoolean is_file = new SettingsModelBoolean(FastGenbankNodeModel.CFGKEY_ISFILE, true);
final SettingsModelString single_file = new SettingsModelString(FastGenbankNodeModel.CFGKEY_FILE, "");
single_file.setEnabled(is_file.getBooleanValue());
final SettingsModelString single_dir = new SettingsModelString(FastGenbankNodeModel.CFGKEY_FOLDER, "c:/temp");
single_dir.setEnabled(!is_file.getBooleanValue());
addDialogComponent(new DialogComponentBoolean(is_file, "Load single file?"));
is_file.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent arg0) {
single_dir.setEnabled(!is_file.getBooleanValue());
single_file.setEnabled(is_file.getBooleanValue());
}
});
addDialogComponent(new DialogComponentFileChooser(single_file,"gb-history",JFileChooser.OPEN_DIALOG,
".gb|.seq|.gbk",
".gb.gz|.seq.gz|.gbk.gz"
));
addDialogComponent(new DialogComponentFileChooser(single_dir, "gb-history", JFileChooser.OPEN_DIALOG, true, ""));
this.closeCurrentGroup();
createNewGroup("Data Selection");
addDialogComponent(new DialogComponentString(
new SettingsModelString(FastGenbankNodeModel.CFGKEY_TAXONOMY_FILTER, ""),
"Filter by taxonomy (space separated)", false, 80)
);
addDialogComponent(new DialogComponentBoolean(
new SettingsModelBoolean(FastGenbankNodeModel.CFGKEY_SOURCE_FEATURES, true), "Sample Source Features"));
addDialogComponent(new DialogComponentBoolean(
new SettingsModelBoolean(FastGenbankNodeModel.CFGKEY_CDS_FEATURES, true), "Coding Sequence Features"));
addDialogComponent(new DialogComponentString(
new SettingsModelString(FastGenbankNodeModel.CFGKEY_FILENAME_FILTER, ""),
"Filter by filename (space separated)", false, 80)
);
}
}